Trò chơi đua xe động vật trong UNITY Engine
114.811 lượt xem;
- ButtonSkills.cs
- GameScreen /
- AnimalRacing /
- Scripts /
- Assets /
- project /
1 using UnityEngine;
2 using System.Collections;
3
4 namespace GamePlay
5 {
6 public class ButtonSkills : MonoBehaviour
7 {
8 public Sprite[] skillSprites;
9 public Sprite[] skillSpriteLocks;
10
11 public GameObject[] buttonSkills;
12 public GameObject[] boardObjects;
13 public Sprite boardSprite;
14
15 private BitmapFont[] fontSkills;
16 private GameObject[] labels;
17 private int[] numberSkills = new int[]{0, 0, 0};
18
19 public GameScreen gameScreen;
20
21 private int skillNumber = 0;
22
23 public void Start()
24 {
25 float[] btX = new float[] {1.75f, 2.65f, 3.55f};
26 int[] skills = Attr.currentSkills;
27 //int skillNumber = 0;
28 labels = new GameObject[3];
29 for (int i = 0; i < 3; i++)
30 {
31 if (skills[i] >= 0)
32 {
33 buttonSkills[skillNumber].GetComponent<SpriteRenderer>().sprite = skillSprites[skills[i]];
34 buttonSkills[skillNumber].AddComponent<SkillRandom>().skillType = SkillRandom.getSkillType(skills[i]);
35 addClickListener(buttonSkills[skillNumber], skillSprites[skills[i]], skillSpriteLocks[skills[i]]);
36 boardObjects[skillNumber].GetComponent<SpriteRenderer>().sprite = boardSprite;
37 labels[skillNumber] = new GameObject("SkillNumber");
38 labels[skillNumber].transform.parent = gameObject.transform;
39 skillNumber++;
40 }
41 }
42
43 for (int i = skillNumber - 1; i >= 0; i--)
44 {
45 Vector3 p = buttonSkills[i].gameObject.transform.localPosition;
46 buttonSkills[i].gameObject.transform.localPosition = new Vector3(btX[2 - i], p.y, p.z);
47 boardObjects[i].transform.localPosition = new Vector3(btX[2 - i] + 0.2f, p.y - 0.25f, -1);
48
49 labels[i].transform.localPosition = new Vector3(btX[2-i] + 0.1f , p.y - 0.35f, -1);
50 }
51 fontSkills = new BitmapFont[3];
52 }
53
54 private void addClickListener(GameObject buttonSkill, Sprite enableSprite, Sprite disableSprite)
55 {
56 buttonSkill.AddComponent<InputProcessor>();
57 SkillClickListener skillClickListener = buttonSkill.AddComponent<SkillClickListener>();
58 skillClickListener.setDrawables(enableSprite, disableSprite);
59 skillClickListener.setEnabled(true);
60
61
62 }
63
64 public void setFonts(BitmapFont shopFont)
65 {
66 for (int i = 0; i < skillNumber; i++)
67 {
68 //if (Attr.currentSkills[i] >= 0)
69 if (buttonSkills[i].GetComponent<SkillClickListener>() != null)
70 {
71 fontSkills[i] = new BitmapFont(shopFont, labels[i]);
72 fontSkills[i].setText("" + numberSkills[i], 0, 0, "GUI", "GUI");
73 buttonSkills[i].GetComponent<SkillClickListener>().setEnabled(numberSkills[i] > 0);
74 }
75 //else
76 //{
77 // fontSkills[i] = null;
78 // if(Attr.currentSkills[i] >= 0)
79 // buttonSkills[i].SetActive(false);
80 //}
81 }
82 }
83
84 public void eateSkill(SkillType type)
85 {
86 for (int i = 0; i < buttonSkills.Length; i++)
87 {
88 if (buttonSkills[i].GetComponent<SkillRandom>().skillType == type)
89 {
90 numberSkills[i]++;
91 fontSkills[i].setText("" + numberSkills[i], 0, 0, "GUI", "GUI");
92 buttonSkills[i].GetComponent<SkillClickListener>().setEnabled(numberSkills[i] > 0);
93 break;
94 }
95 }
96 }
97
98 public void shot(SkillType type)
99 {
100 for (int i = 0; i < buttonSkills.Length; i++)
101 {
102 if (buttonSkills[i].GetComponent<SkillRandom>().skillType == type)
103 {
104 numberSkills[i]--;
105 fontSkills[i].setText("" + numberSkills[i], 0, 0, "GUI", "GUI");
106 buttonSkills[i].GetComponent<SkillClickListener>().setEnabled(numberSkills[i] > 0);
107 break;
108 }
109 }
110 }
111 }
112 }
2 using System.Collections;
3
4 namespace GamePlay
5 {
6 public class ButtonSkills : MonoBehaviour
7 {
8 public Sprite[] skillSprites;
9 public Sprite[] skillSpriteLocks;
10
11 public GameObject[] buttonSkills;
12 public GameObject[] boardObjects;
13 public Sprite boardSprite;
14
15 private BitmapFont[] fontSkills;
16 private GameObject[] labels;
17 private int[] numberSkills = new int[]{0, 0, 0};
18
19 public GameScreen gameScreen;
20
21 private int skillNumber = 0;
22
23 public void Start()
24 {
25 float[] btX = new float[] {1.75f, 2.65f, 3.55f};
26 int[] skills = Attr.currentSkills;
27 //int skillNumber = 0;
28 labels = new GameObject[3];
29 for (int i = 0; i < 3; i++)
30 {
31 if (skills[i] >= 0)
32 {
33 buttonSkills[skillNumber].GetComponent<SpriteRenderer>().sprite = skillSprites[skills[i]];
34 buttonSkills[skillNumber].AddComponent<SkillRandom>().skillType = SkillRandom.getSkillType(skills[i]);
35 addClickListener(buttonSkills[skillNumber], skillSprites[skills[i]], skillSpriteLocks[skills[i]]);
36 boardObjects[skillNumber].GetComponent<SpriteRenderer>().sprite = boardSprite;
37 labels[skillNumber] = new GameObject("SkillNumber");
38 labels[skillNumber].transform.parent = gameObject.transform;
39 skillNumber++;
40 }
41 }
42
43 for (int i = skillNumber - 1; i >= 0; i--)
44 {
45 Vector3 p = buttonSkills[i].gameObject.transform.localPosition;
46 buttonSkills[i].gameObject.transform.localPosition = new Vector3(btX[2 - i], p.y, p.z);
47 boardObjects[i].transform.localPosition = new Vector3(btX[2 - i] + 0.2f, p.y - 0.25f, -1);
48
49 labels[i].transform.localPosition = new Vector3(btX[2-i] + 0.1f , p.y - 0.35f, -1);
50 }
51 fontSkills = new BitmapFont[3];
52 }
53
54 private void addClickListener(GameObject buttonSkill, Sprite enableSprite, Sprite disableSprite)
55 {
56 buttonSkill.AddComponent<InputProcessor>();
57 SkillClickListener skillClickListener = buttonSkill.AddComponent<SkillClickListener>();
58 skillClickListener.setDrawables(enableSprite, disableSprite);
59 skillClickListener.setEnabled(true);
60
61
62 }
63
64 public void setFonts(BitmapFont shopFont)
65 {
66 for (int i = 0; i < skillNumber; i++)
67 {
68 //if (Attr.currentSkills[i] >= 0)
69 if (buttonSkills[i].GetComponent<SkillClickListener>() != null)
70 {
71 fontSkills[i] = new BitmapFont(shopFont, labels[i]);
72 fontSkills[i].setText("" + numberSkills[i], 0, 0, "GUI", "GUI");
73 buttonSkills[i].GetComponent<SkillClickListener>().setEnabled(numberSkills[i] > 0);
74 }
75 //else
76 //{
77 // fontSkills[i] = null;
78 // if(Attr.currentSkills[i] >= 0)
79 // buttonSkills[i].SetActive(false);
80 //}
81 }
82 }
83
84 public void eateSkill(SkillType type)
85 {
86 for (int i = 0; i < buttonSkills.Length; i++)
87 {
88 if (buttonSkills[i].GetComponent<SkillRandom>().skillType == type)
89 {
90 numberSkills[i]++;
91 fontSkills[i].setText("" + numberSkills[i], 0, 0, "GUI", "GUI");
92 buttonSkills[i].GetComponent<SkillClickListener>().setEnabled(numberSkills[i] > 0);
93 break;
94 }
95 }
96 }
97
98 public void shot(SkillType type)
99 {
100 for (int i = 0; i < buttonSkills.Length; i++)
101 {
102 if (buttonSkills[i].GetComponent<SkillRandom>().skillType == type)
103 {
104 numberSkills[i]--;
105 fontSkills[i].setText("" + numberSkills[i], 0, 0, "GUI", "GUI");
106 buttonSkills[i].GetComponent<SkillClickListener>().setEnabled(numberSkills[i] > 0);
107 break;
108 }
109 }
110 }
111 }
112 }
int skillNumber = 0;
if (Attr.currentSkills[i] >= 0)
else
{
fontSkills[i] = null;
if(Attr.currentSkills[i] >= 0)
buttonSkills[i].SetActive(false);
}